/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package controller;

import Pojos.JsonPojo;
import java.util.ArrayList;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import org.primefaces.event.RowEditEvent;
import org.primefaces.event.map.OverlaySelectEvent;
import org.primefaces.model.map.DefaultMapModel;
import org.primefaces.model.map.LatLng;
import org.primefaces.model.map.MapModel;
import org.primefaces.model.map.Marker;
import utils.Utils;

/**
 *
 * @author bugtraq
 */
@ManagedBean(name = "pruebaController")
@SessionScoped
public class pruebaController {

    private List<JsonPojo> json;
    private List<JsonPojo> json2;
    private List<JsonPojo> json3;
    private Marker marker;
    private String categoria;
    private String producto;
    private MapModel mapa = new DefaultMapModel();

    public String getCategoria() {
        return categoria;
    }

    public void setCategoria(String categoria) {
        this.categoria = categoria;
    }

    public String getProducto() {
        return producto;
    }

    public void setProducto(String producto) {
        this.producto = producto;
    }

    public List<JsonPojo> getJson3() {
        return json3;
    }

    public void setJson3(List<JsonPojo> json3) {
        this.json3 = json3;
    }

    public Marker getMarker() {
        return marker;
    }

    public void setMarker(Marker marker) {
        this.marker = marker;
    }

    public MapModel getMapa() {
        mapa.addOverlay(new Marker(new LatLng(13.6914782, -89.2146939), "campo1"));
        mapa.addOverlay(new Marker(new LatLng(13.7391679, -89.2104026), "campo2"));

        return mapa;
    }

    public void onMarkerSelect(OverlaySelectEvent event) {
        this.marker = (Marker) event.getOverlay();
    }
//    public void setMapa(MapModel mapa) {
//        this.mapa = mapa;
//    }

    public List<JsonPojo> getJson4(String url, String campos) {
        Utils utils = new Utils();
        List<String> lista = utils.arrayToList(campos.split(","));
        return (List<JsonPojo>) utils.getJSON(url, lista);
    }

    public List<JsonPojo> getJson3(String url) {
        Utils utils = new Utils();
        List<String> lista = new ArrayList<String>();
        lista.add("header_file_name");
        lista.add("slug");
        lista.add("acronym");
        return (List<JsonPojo>) utils.getJSON(url, lista);
    }

    public List<JsonPojo> getJson2() {
        Utils utils = new Utils();
        List<String> lista = new ArrayList<String>();
        lista.add("header_file_name");
        lista.add("slug");
        lista.add("acronym");
        return (List<JsonPojo>) utils.getJSON("http://api.gobiernoabierto.gob.sv/institutions", lista);
    }

    public List<JsonPojo> getJson() {
        Utils utils = new Utils();
        return (List<JsonPojo>) utils.getJSON("http://api.gobiernoabierto.gob.sv/institutions");
    }

    public void setJson2(List<JsonPojo> json2) {
        this.json2 = json2;
    }

    public void onRowEdit(RowEditEvent event) {
        FacesMessage msg = new FacesMessage("Edición de precios Realizada", ((JsonPojo) event.getObject()).getKey().toString());
        FacesContext.getCurrentInstance().addMessage(null, msg);
    }

    public void onRowCancel(RowEditEvent event) {
        FacesMessage msg = new FacesMessage("Edición de precio cancelada", ((JsonPojo) event.getObject()).getKey().toString());
        FacesContext.getCurrentInstance().addMessage(null, msg);
    }
}
